package com.zjsru.oneDay;

/**
 * 按键持续时间最长的键
 * 输入：releaseTimes = [9,29,49,50], keysPressed = "cbcd"
 * 输出："c"
 * 解释：按键顺序和持续时间如下：
 * 按下 'c' ，持续时间 9（时间 0 按下，时间 9 松开）
 * 按下 'b' ，持续时间 29 - 9 = 20（松开上一个键的时间 9 按下，时间 29 松开）
 * 按下 'c' ，持续时间 49 - 29 = 20（松开上一个键的时间 29 按下，时间 49 松开）
 * 按下 'd' ，持续时间 50 - 49 = 1（松开上一个键的时间 49 按下，时间 50 松开）
 * 按键持续时间最长的键是 'b' 和 'c'（第二次按下时），持续时间都是 20
 * 'c' 按字母顺序排列比 'b' 大，所以答案是 'c'
 */
public class slowestKey {
    public char slowestKey(int[] releaseTimes, String keysPressed) {
        int n = releaseTimes.length;
        int max = releaseTimes[0], idx = 0;
        for (int i = 1; i < n; i++) {
            int cur = releaseTimes[i] - releaseTimes[i - 1];
            if (cur > max) {
                idx = i;
                max = cur;
            } else if (max == cur && keysPressed.charAt(i) > keysPressed.charAt(idx)) {
                idx = i;
            }
        }
        return keysPressed.charAt(idx);
    }

    public static void main(String[] args) {
        slowestKey slowestKey = new slowestKey();
        int[] releaseTimes = new int[]{28,65,97};
        String keysPressed = "gaf";
        System.out.println(slowestKey.slowestKey(releaseTimes, keysPressed));

    }
}
